The present invention relates to access control to a shared file stored, for example on a disk drive or magnetic tape drive which is shared and updated by a plurality of computer systems, and more particularly to access control which eliminates need for exclusive control in an update process and improves performance of data accessing in block writing.
In middle size to large size information processing systems, one disk file is frequently shared by a plurality of computer systems. Especially, a system register disk file on which files are registered is shared and frequently updated or overwritten.
In the past, when one file is shared by a plurality of computer systems, duplicate updating is prevented by exclusive control of the writing of a desired block to the reading for updating when data processing is to be performed for the desired stored block by a computer system. For example, as described in the "DASD Sharing with other systems" manual for Programmer of Hitachi Program Product VOS3/ES System, 1988, pages 97-104, when an I/O request to a shared file is issued, a disk drive on which the shared file is stored is exclusively occupied by the associated computer system by an instruction set such as a RESERVE macro which is issued from a CPU to the disk drive to designate and occupy the disk drive, and I/O requests from other computer systems have to wait until the occupation is released by an instruction set such as a DEQ macro which is issued to release the designated disk drive from the occupation (exclusive control).
The file such as a system register comprises an index field and a data field, and in many cases, it is a file structure having a pointer relationship among blocks of the file. When the file is shared with updating, the exclusive control is performed even for an input process without updating, during a period from the reading of an index having the pointer into a desired data block to the reading by the disk drive of the data block which is at the address pointed by the pointer. This is done in order to prevent process discrepancy that if addition (updating) of a record to a data block is done in an updating process by another computer system during the period from the reading of the index in the input process to the reading of the data block, the target data which was in the data block pointed by the index at the time of reading of the index in the input process has been moved to another data block and the target data which should exist cannot be located.
In the prior art, when the computer system accesses the shared file, the exclusive control is performed to suppress simultaneous access by other computer systems. Accordingly, the processing performance of the overall information processing system cannot be enhanced. In a single computer system, a resident area is provided in a main memory to reduce input/output operation of the file and enhance data accessing performance. On the other hand, in a multi-computer system, in the input process from the computer system to the shared file, the content of the desired block which has been previously written into the main memory is not used but the block on the file is fetched on the assumption that the block has been updated by a process executed by another computer system. Thus, the resident function cannot be used among the computer systems.